From d8f361705325cf91fc6c2ec84f281cdcd6bfa8b1 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Tue, 3 Dec 2019 21:23:24 +0100
Subject: [PATCH] core: Remove MES_PKGDATADIR.

* configure: Do not add MES_PKGDATADIR to config.h.
* configure.sh: Likewise.
* simple.sh: Likewise.
* src/mes.c (open_boot): Do not use MES_PKGDATADIR; rely on
MES_PREFIX or cwd.
---
 configure    |  1 -
 configure.sh |  1 -
 simple.sh    |  2 --
 src/mes.c    | 13 -------------
 4 files changed, 17 deletions(-)

diff --git a/configure b/configure
index 8edb2ce7b..12d8323f2 100755
--- a/configure
+++ b/configure
@@ -666,7 +666,6 @@ See \"Porting GNU Mes\" in the manual, or try --with-courage\n" mes-system)
 "))
               (display (string-append "
 #define MES_VERSION \"" VERSION "\"
-#define MES_PKGDATADIR \"" pkgdatadir "\"
 ")))))
         (substitute (string-append srcdest "build-aux/config.make.in") pairs #:target ".config.make"))
 
diff --git a/configure.sh b/configure.sh
index 947ddd851..0139cbc36 100755
--- a/configure.sh
+++ b/configure.sh
@@ -244,7 +244,6 @@ EOF
 fi
 cat >> include/mes/config.h <<EOF
 #define MES_VERSION "$VERSION"
-#define MES_PKGDATADIR "$pkgdatadir"
 EOF
 
 cat <<EOF
diff --git a/simple.sh b/simple.sh
index db6950354..b54398a59 100755
--- a/simple.sh
+++ b/simple.sh
@@ -33,7 +33,6 @@ mes_bits=64
 cat > include/mes/config.h <<EOF
 #define SYSTEM_LIBC 1
 #define MES_VERSION "git"
-#define MES_PKGDATADIR "/usr/local/share/mes"
 EOF
 
 ## Build ##
@@ -126,7 +125,6 @@ mes_cpu=x86_64
 cat > include/mes/config.h <<EOF
 // #define SYSTEM_LIBC 0
 #define MES_VERSION "git"
-#define MES_PKGDATADIR "/usr/local/share/mes"
 EOF
 
 ## Build ##
diff --git a/src/mes.c b/src/mes.c
index d9760fad6..a5e7f2b69 100644
--- a/src/mes.c
+++ b/src/mes.c
@@ -1775,12 +1775,6 @@ open_boot ()
   char boot[1024];
   char file_name[1024];
   strcpy (g_datadir, ".");
-  if (g_debug > 1)
-    {
-      eputs (";;; pkgdatadir=");
-      eputs (MES_PKGDATADIR);
-      eputs ("\n");
-    }
   if (getenv ("MES_BOOT"))
     strcpy (boot, getenv ("MES_BOOT"));
   else
@@ -1801,13 +1795,6 @@ open_boot ()
           __stdin = try_open_boot (file_name, boot, "MES_PREFIX/share/mes");
         }
     }
-  if (__stdin < 0)
-    {
-      strcpy (g_datadir, MES_PKGDATADIR);
-      strcpy (file_name, g_datadir);
-      strcpy (file_name + strlen (file_name), "/module/mes/");
-      __stdin = try_open_boot (file_name, boot, "pkgdatadir");
-    }
   if (__stdin < 0)
     {
       g_datadir[0] = 0;
-- 
2.24.0

commit 2f6fab05b3f09df02aba70c3e21d5fedb45dc567
Author: Jan Nieuwenhuizen <janneke@gnu.org>
Date:   Sun Nov 24 23:12:29 2019 +0100

    core: Throw instead of segfault on non-existing input file.  WIP.
    
    Reported by theruran.
    
    * src/posix.c (open_input_file): Call error instead of failing silently.

diff --git a/src/posix.c b/src/posix.c
index 7ba2e9915..fd753232d 100644
--- a/src/posix.c
+++ b/src/posix.c
@@ -188,7 +188,10 @@ current_input_port ()
 SCM
 open_input_file (SCM file_name)
 {
-  return MAKE_NUMBER (mes_open (CSTRING (file_name), O_RDONLY, 0));
+  int filedes = mes_open (CSTRING (file_name), O_RDONLY, 0);
+  if (filedes == -1)
+    error (cell_symbol_system_error, cons (MAKE_STRING0 ("No such file or directory"), file_name));
+  return MAKE_NUMBER (filedes);
 }
 
 SCM
